package com.onlyxiahui.extend.query.hibernate.handler.result.config;

/**
 * Description <br>
 * Date 2019-05-21 14:41:44<br>
 * 
 * @author XiaHui [onlovexiahui@qq.com]<br>
 * @since 1.0.0
 */

public class DateTimeUtil {

	/**
	 * 日期+时间+毫秒格式（yyyy-MM-dd HH:mm:ss.SSS）
	 */
	public static final String FORMAT_DATE_TIME_MILLISECOND = "yyyy-MM-dd HH:mm:ss.SSS";
	/**
	 * 日期+时间格式（yyy-MM-dd HH:mm:ss）
	 */
	public static final String FORMAT_DATE_TIME = "yyyy-MM-dd HH:mm:ss";
	/**
	 * 日期格式（yyyy-MM-dd不含时分秒）
	 */
	public static final String FORMAT_DATE = "yyyy-MM-dd";
	/**
	 * 时间格式（HH:mm:ss不含日期）
	 */
	public static final String FORMAT_TIME = "HH:mm:ss";

	/**
	 * 
	 * Description 大部分时间格式转yyyy-MM-dd HH:mm:ss <br>
	 * Date 2019-03-30 17:58:19<br>
	 * 
	 * @param text
	 * @return String
	 * @since 1.0.0
	 */
	public static String allToDateTime(String text) {
		if (null != text) {
			// 格式全部转化成-间隔
			text = text.replaceAll("[/\\.]", "-");
			String matches = "\\d{4}";
			if (text.matches(matches)) {
				// 只有年份，补全月日时分秒
				text += "-01-01 00:00:00";
			} else if (text.matches("\\d{4}-\\d{1,2}")) {
				// 只有年月，补全日时分秒
				text += "-01 00:00:00";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2}")) {
				// 只有年月日，补全时分秒
				text += " 00:00:00";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}")) {
				// 只有年月日时，补全分秒
				text += ":00:00";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}:\\d{1,2}")) {
				// 只有年月日时分，补全秒
				text += ":00";
			}
		}
		return text;
	}

	/**
	 * 
	 * Description 大部分时间格式转yyyy-MM-dd HH:mm:ss.SSS <br>
	 * Date 2019-03-30 17:58:19<br>
	 * 
	 * @param text
	 * @return String
	 * @since 1.0.0
	 */
	public static String allToDateTimeMillisecond(String text) {
		if (null != text) {
			// 格式全部转化成-间隔
			text = text.replaceAll("[/\\.]", "-");
			String matches = "\\d{4}";
			if (text.matches(matches)) {
				// 只有年份，补全月日时分秒
				text += "-01-01 00:00:00.000";
			} else if (text.matches("\\d{4}-\\d{1,2}")) {
				// 只有年月，补全日时分秒
				text += "-01 00:00:00.000";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2}")) {
				// 只有年月日，补全时分秒
				text += " 00:00:00.000";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}")) {
				// 只有年月日时，补全分秒
				text += ":00:00.000";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}:\\d{1,2}")) {
				// 只有年月日时分，补全秒
				text += ":00.000";
			} else if (text.matches("\\d{4}-\\d{1,2}-\\d{1,2} \\d{1,2}:\\d{1,2}:\\d{1,2}")) {
				// 只有年月日时分秒，补全毫秒秒
				text += ".000";
			}
		}
		return text;
	}
}
